.TH std::basic_ios::clear 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_ios::clear \- std::basic_ios::clear

.SH Synopsis
   void clear( std::ios_base::iostate state = std::ios_base::goodbit );

   Sets the stream error state flags by assigning them the value of state. By default,
   assigns std::ios_base::goodbit which has the effect of clearing all error state
   flags.

   If rdbuf() is a null pointer (i.e. there is no associated stream buffer), then state
   | std::ios_base::badbit is assigned.

.SH Parameters

           new error state flags setting. It can be a combination of the following
           constants:

   state - Constant Explanation
           goodbit  no error
           badbit   irrecoverable stream error
           failbit  input/output operation failed (formatting or extraction error)
           eofbit   associated input sequence has reached end-of-file

.SH Return value

   \fI(none)\fP

.SH Exceptions

   If the new error state includes a bit that is also included in the exceptions()
   mask, throws an exception of type failure.

.SH Example

   clear() without arguments can be used to unset the failbit after unexpected input;
   for std::cin.putback(c) see ungetc.


// Run this code

 #include <iostream>
 #include <string>

 int main()
 {
     for (char c : {'\\n', '4', '1', '.', '3', '\\n', 'Z', 'Y', 'X'})
         std::cin.putback(c); // emulate user's input (not portable: see ungetc Notes)

     double n;
     while (std::cout << "Please, enter a number: " && !(std::cin >> n))
     {
         std::cin.clear();
         std::string line;
         std::getline(std::cin, line);
         std::cout << line << "\\nI am sorry, but '" << line << "' is not a number\\n";
     }
     std::cout << n << "\\nThank you for entering the number " << n << '\\n';
 }

.SH Output:

 Please, enter a number: XYZ
 I am sorry, but 'XYZ' is not a number
 Please, enter a number: 3.14
 Thank you for entering the number 3.14

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to             Behavior as published              Correct behavior
                      an excption would be thrown if the current
   LWG 412 C++98      error state                                   checks the new
                      includes a bit that is also included in the   error state instead
                      exceptions() mask

.SH See also

   setstate sets state flags
            \fI(public member function)\fP
   rdstate  returns state flags
            \fI(public member function)\fP
